package com.duyutian.test;

import java.util.concurrent.CountDownLatch;
import java.util.concurrent.CyclicBarrier;

/**
 * @Author : duyutian
 * @Date : 2019/11/20 13:42
 * @Version 1.0
 * 位运算符测试 ip地址
 */
public class 位运算符测试 {
    /**
     * --------------------------------------------------------------------------------------------
     * \      &：按位与 \  如果相对应位都是1，则=为1，否则为0    \ （A＆B），得到12，即0000 1100\
     * --------------------------------------------------------------------------------------------
     * \   |：按位或    \   如果相对应位都是0，则=为0，否则为1   \ （A | B）得到61，即 0011 1101 \
     * --------------------------------------------------------------------------------------------
     * \   ~：按位非    \ 按位取反运算符翻转操作数的每一位，即01互换\ （〜A）得到-61，即1100 0011   \
     * --------------------------------------------------------------------------------------------
     * \   ^：按位异或  \    如果相对应位值相同，则=为0，否则为1 \ （A ^ B）得到49，即 0011 0001 \
     * --------------------------------------------------------------------------------------------
     * \ <<左位移运算符 \ 左操作数按位左移右操作数指定的位数。      \   A << 2得到240，即 1111 0000 \
     * --------------------------------------------------------------------------------------------
     * \ >>右位移运算符 \  左操作数按位右移右操作数指定的位数       \     A >> 2得到15即 1111      \
     * ----------------------------------------------------------------------------------------------
     * \                \   左操作数的值按右操作数指定的位数右移    \                               \
     * \ >>> 无符号右移  \    移动得到的空位以零填充                 \    A>>>2得到15即0000 1111    \
     * ----------------------------------------------------------------------------------------------
     * 优先级S：~  波浪
     * 优先级A：<<、>>和>>>
     * 优先级B：＆
     * 优先级C：^  shift+6
     * 优先级D：/
     */
    public static void main(String[] args) {
        int i = 80;
       /* int i1 = i >> 2;
        System.out.println(i1);
        System.out.println(i<<2);*/
       /* System.out.println(i << 2);

        System.out.println(1<<35);*/

        //System.out.println(1<<2+3<<4);
       /* int x = 65535;
        int y = x*x;
        System.out.println(y);*/
        System.out.println(-2147483648<2147483647);

    }
}
